package com.zpark.merchant.app.controller;

import com.zpark.jushanpay.common.domain.RestResponse;
import com.zpark.jushanpay.common.util.SecurityUtil;
import com.zpark.merchant.api.dto.AppDTO;
import com.zpark.merchant.api.service.IAppService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 应用控制层
 */
@RestController
@RequestMapping("/app")
public class AppController {

    @Autowired
    private IAppService appService;

    /**
     * 商户添加应用
     * @param dto 应用对象
     * @return
     */
    @PostMapping("/add_app")
    public RestResponse<AppDTO> addApp(@RequestBody AppDTO dto){
        // 1、从token当中获取merchantId
        Long merchantId = SecurityUtil.getMerchantId();
        // 2、调用业务层方法添加应用app
        AppDTO app = appService.createApp(merchantId, dto);

        return RestResponse.success(app);
    }

    /**
     * 根据商户id查询所有应用
     */
    @GetMapping("/find_app_merchant_id")
    public RestResponse<List<AppDTO>> findByMerchantId(){
        // 1、从token当中解析merchantId
        Long merchantId = SecurityUtil.getMerchantId();
        // 2、调用业务层方法查询数据
        List<AppDTO> appDTOS = appService.queryByMerchantId(merchantId);
        // 3、返回结果
        return RestResponse.success(appDTOS);
    }

    /**
     * 根据应用的appId查询应用数据
     * @param appId 应用的appId
     * @return
     */
    @GetMapping("/find_app_appId/{appId}")
    public RestResponse<AppDTO> findByAppId(@PathVariable("appId") String appId){
        // 1、调用业务层方法查询数据
        AppDTO appDTO = appService.queryByAppId(appId);
        // 2、将查询结果返回
        return RestResponse.success(appDTO);
    }
}
